| Metric | Value |
|---|---|
| AIC | 107.34 |
| AICc | 108.72 |
| BIC | 113.44 |
| Nagelkerke’s R2 | 0.37 |
| RMSE | 1.20 |
| Sigma | 1.00 |
| Score_log | -1.46 |
| Score_spherical | 0.16 |
For interpretation of performance metrics, please refer to this documentation.
| Parameter | Log-Mean | SE | 95% CI | z | p |
|---|---|---|---|---|---|
| (Intercept) | -0.10 | 0.85 | (-1.94, 1.43) | -0.12 | 0.907 |
| Sitio | -1.56e-03 | 0.09 | (-0.17, 0.17) | -0.02 | 0.986 |
| Periodo | 0.07 | 0.18 | (-0.26, 0.44) | 0.42 | 0.674 |
| Sitio × Periodo | 0.01 | 0.02 | (-0.03, 0.05) | 0.57 | 0.566 |
To find out more about table summary options, please refer to this documentation.
| Sitio | Periodo | Predicted | SE | 95% CI |
|---|---|---|---|---|
| -12.09 | 2.45 | 0.82 | 0.81 | (0.12, 5.66) |
| -7.06 | 2.45 | 0.92 | 0.70 | (0.21, 4.11) |
| -2.03 | 2.45 | 1.03 | 0.57 | (0.35, 3.02) |
| 3.00 | 2.45 | 1.17 | 0.40 | (0.59, 2.30) |
| 8.03 | 2.45 | 1.31 | 0.29 | (0.85, 2.03) |
| 13.06 | 2.45 | 1.48 | 0.43 | (0.84, 2.62) |
| 18.09 | 2.45 | 1.67 | 0.79 | (0.66, 4.24) |
| 23.12 | 2.45 | 1.88 | 1.30 | (0.49, 7.27) |
| 28.15 | 2.45 | 2.12 | 1.93 | (0.35, 12.66) |
| 33.18 | 2.45 | 2.38 | 2.71 | (0.26, 22.21) |
| -12.09 | 4.21 | 0.75 | 0.44 | (0.24, 2.35) |
| -7.06 | 4.21 | 0.92 | 0.42 | (0.38, 2.25) |
| -2.03 | 4.21 | 1.14 | 0.37 | (0.60, 2.16) |
| 3.00 | 4.21 | 1.40 | 0.29 | (0.93, 2.11) |
| 8.03 | 4.21 | 1.73 | 0.23 | (1.33, 2.25) |
| 13.06 | 4.21 | 2.13 | 0.36 | (1.53, 2.98) |
| 18.09 | 4.21 | 2.63 | 0.73 | (1.53, 4.54) |
| 23.12 | 4.21 | 3.25 | 1.31 | (1.48, 7.15) |
| 28.15 | 4.21 | 4.01 | 2.14 | (1.41, 11.39) |
| 33.18 | 4.21 | 4.95 | 3.29 | (1.34, 18.23) |
| -12.09 | 5.96 | 0.68 | 0.53 | (0.15, 3.16) |
| -7.06 | 5.96 | 0.92 | 0.56 | (0.28, 3.01) |
| -2.03 | 5.96 | 1.25 | 0.54 | (0.54, 2.90) |
| 3.00 | 5.96 | 1.69 | 0.46 | (0.99, 2.86) |
| 8.03 | 5.96 | 2.28 | 0.39 | (1.63, 3.18) |
| 13.06 | 5.96 | 3.08 | 0.70 | (1.97, 4.81) |
| 18.09 | 5.96 | 4.16 | 1.57 | (1.99, 8.71) |
| 23.12 | 5.96 | 5.62 | 3.08 | (1.92, 16.43) |
| 28.15 | 5.96 | 7.60 | 5.50 | (1.84, 31.41) |
| 33.18 | 5.96 | 10.27 | 9.28 | (1.75, 60.33) |
Variable predicted: n.genera
Predictors modulated: Sitio, Periodo
We fitted a poisson model (estimated using ML) to predict n.genera with Sitio and Periodo (formula: n.genera ~ Sitio * Periodo). The model’s explanatory power is substantial (Nagelkerke’s R2 = 0.37). The model’s intercept, corresponding to Sitio = 0 and Periodo = 0, is at -0.10 (95% CI (-1.94, 1.43), p = 0.907). Within this model:
Standardized parameters were obtained by fitting the model on a standardized version of the dataset. 95% Confidence Intervals (CIs) and p-values were computed using a Wald z-distribution approximation. The model’s explanatory power is substantial (Nagelkerke’s R2 = 0.37)
---
title: "Regression model summary from `{easystats}`"
output:
flexdashboard::flex_dashboard:
theme:
version: 4
# bg: "#101010"
# fg: "#FDF7F7"
primary: "#0054AD"
base_font:
google: Prompt
code_font:
google: JetBrains Mono
params:
model: model
check_model_args: check_model_args
parameters_args: parameters_args
performance_args: performance_args
---
```{r setup, include=FALSE}
library(flexdashboard)
library(easystats)
# Since not all regression model are supported across all packages, make the
# dashboard chunks more fault-tolerant. E.g. a model might be supported in
# `{parameters}`, but not in `{report}`.
#
# For this reason, `error = TRUE`
knitr::opts_chunk$set(
error = TRUE,
out.width = "100%"
)
# helper function for printing `{report}` outputs
bracket_to_parantheses <- function(text) {
gsub("]", ")", gsub("[", "(", text, fixed = TRUE), fixed = TRUE)
}
```
```{r easydashboard-1}
# Get user-specified model data
model <- params$model
# Is it supported by `{easystats}`? Skip evaluation of the following chunks if not.
is_supported <- insight::is_model_supported(model)
if (!is_supported) {
unsupported_message <- sprintf(
"Unfortunately, objects of class `%s` are not yet supported in {easystats}.\n
For a list of supported models, see `insight::supported_models()`.",
class(model)[1]
)
}
```
Model fit
=====================================
Column {data-width=700}
-----------------------------------------------------------------------
### Assumption checks
```{r check-model, eval=is_supported, fig.height=10, fig.width=10}
check_model_args <- c(list(model), params$check_model_args)
# add verbose, if not done yet
if (is.null(check_model_args$verbose)) check_model_args$verbose <- FALSE
tryCatch(
{
do.call(performance::check_model, check_model_args)
},
error = function(e) {
cat(insight::format_message(
"\nSomething did not work as expected. Please file an issue at {.url https://github.com/easystats/easystats/issues/} and post the following output:",
paste0("\n`", e$message, "`")
))
}
)
```
```{r easydashboard-2, eval=!is_supported}
cat(unsupported_message)
```
Column {data-width=300}
-----------------------------------------------------------------------
### Indices of model fit
```{r easydashboard-3, eval=is_supported}
# {performance}
performance_args <- c(list(model), params$performance_args)
# add verbose, if not done yet
if (is.null(performance_args$verbose)) performance_args$verbose <- FALSE
table_performance <- do.call(performance::performance, performance_args)
print_md(table_performance, layout = "vertical", caption = NULL)
```
```{r easydashboard-4, eval=!is_supported}
cat(unsupported_message)
```
For interpretation of performance metrics, please refer to <a href="https://easystats.github.io/performance/reference/model_performance.html" target="_blank">this documentation</a>.
Parameter estimates
=====================================
Column {data-width=550}
-----------------------------------------------------------------------
### Plot
```{r dot-whisker, eval=is_supported}
# `{parameters}`
parameters_args <- c(list(model), params$parameters_args)
# add verbose, if not done yet
if (is.null(parameters_args$verbose)) parameters_args$verbose <- FALSE
table_parameters <- do.call(parameters::parameters, parameters_args)
plot(table_parameters)
```
```{r easydashboard-5, eval=!is_supported}
cat(unsupported_message)
```
Column {data-width=450}
-----------------------------------------------------------------------
### Tabular summary
```{r easydashboard-6, eval=is_supported}
print_md(table_parameters, caption = NULL)
```
```{r easydashboard-7, eval=!is_supported}
cat(unsupported_message)
```
To find out more about table summary options, please refer to <a href="https://easystats.github.io/parameters/reference/model_parameters.html" target="_blank">this documentation</a>.
Predicted Values
=====================================
Column {data-width=600}
-----------------------------------------------------------------------
### Plot
```{r expected-values, eval=is_supported, fig.height=10, fig.width=10}
# {modelbased}
int_terms <- find_interactions(model, component = "conditional", flatten = TRUE)
con_terms <- find_variables(model)$conditional
if (is.null(int_terms)) {
model_terms <- con_terms
} else {
model_terms <- clean_names(int_terms)
int_terms <- unique(unlist(strsplit(clean_names(int_terms), ":", fixed = TRUE)))
model_terms <- c(model_terms, setdiff(con_terms, int_terms))
}
# check some exceptions here: logistic regression models with factor response
# usually require the response to be included in the model, else `get_modelmatrix()`
# fails, which is required to compute SE/CI for `get_predicted()`
response <- find_response(model)
minfo <- model_info(model)
model_data <- get_data(model)
include_response <- minfo$is_binomial && minfo$is_logit && is.factor(model_data[[response]])
text_modelbased <- tryCatch(
{
lapply(unique(model_terms), function(i) {
dgrid <- get_datagrid(
model,
by = i,
range = "grid",
preserve_range = FALSE,
verbose = FALSE,
include_response = include_response
)
estimate_expectation(model, data = dgrid, verbose = FALSE)
})
},
error = function(e) {
cat(insight::format_message(
"\nSomething did not work as expected. Please file an issue at {.url https://github.com/easystats/easystats/issues/} and post the following output:",
paste0("\n`", e$message, "`")
))
NULL
}
)
if (!is.null(text_modelbased)) {
ggplot2::theme_set(theme_modern())
# all_plots <- lapply(text_modelbased, function(i) {
# out <- do.call(visualisation_recipe, c(list(i), modelbased_args))
# plot(out) + ggplot2::ggtitle("")
# })
all_plots <- lapply(text_modelbased, function(i) {
out <- visualisation_recipe(i, show_data = "none")
plot(out) + ggplot2::ggtitle("")
})
see::plots(all_plots, n_columns = round(sqrt(length(text_modelbased))))
}
```
```{r easydashboard-8, eval=!is_supported}
cat(unsupported_message)
```
Column {data-width=400}
-----------------------------------------------------------------------
### Tabular summary
```{r easydashboard-9, eval=is_supported, results="asis"}
if (!is.null(text_modelbased)) {
for (i in text_modelbased) {
tmp <- print_md(i)
tmp <- gsub("Variable predicted", "\nVariable predicted", tmp, fixed = TRUE)
tmp <- gsub("Predictors modulated", "\nPredictors modulated", tmp, fixed = TRUE)
tmp <- gsub("Predictors controlled", "\nPredictors controlled", tmp, fixed = TRUE)
print(tmp)
}
}
```
```{r easydashboard-10, eval=!is_supported}
cat(unsupported_message)
```
Text reports
=====================================
Column {data-width=500}
-----------------------------------------------------------------------
### Textual summary
```{r easydashboard-11, eval=is_supported, results='asis', collapse=TRUE}
# {report}
text_report <- tryCatch(
{
report(model, verbose = FALSE)
},
error = function(e) {
cat(insight::format_message(
"\nSomething did not work as expected. Please file an issue at {.url https://github.com/easystats/easystats/issues/} and post the following output:",
paste0("\n`", e$message, "`")
))
NULL
}
)
text_report_performance <- tryCatch(
{
report_performance(model, verbose = FALSE)
},
error = function(e) {
cat(insight::format_message(
"\nSomething did not work as expected. Please file an issue at {.url https://github.com/easystats/easystats/issues/} and post the following output:",
paste0("\n`", e$message, "`")
))
NULL
}
)
if (!is.null(text_report)) {
cat(bracket_to_parantheses(text_report))
cat("\n")
}
if (!is.null(text_report_performance)) {
cat(bracket_to_parantheses(text_report_performance))
}
```
```{r easydashboard-12, eval=!is_supported}
cat(unsupported_message)
```
Column {data-width=500}
-----------------------------------------------------------------------
### Model information
```{r easydashboard-13, eval=is_supported}
model_info_data <- insight::model_info(model, verbose = FALSE)
model_info_data <- datawizard::data_to_long(as.data.frame(insight::compact_list(model_info_data)))
DT::datatable(model_info_data)
```
```{r easydashboard-14, eval=!is_supported}
cat(unsupported_message)
```